/******************************************************************************* * Copyright (c) 2004, 2010 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.ui.tests.dynamicplugins; import java.io.ByteArrayInputStream; //import java.lang.ref.ReferenceQueue; //import java.lang.ref.WeakReference; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.ui.IEditorDescriptor; //import org.eclipse.ui.IEditorPart; //import org.eclipse.ui.IEditorRegistry; //import org.eclipse.ui.IWorkbenchWindow; //import org.eclipse.ui.ide.IDE; //import org.eclipse.ui.internal.WorkbenchPlugin; import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants; //import org.eclipse.ui.tests.leaks.LeakTests; /** * @since 3.1 */ public class EditorTests extends DynamicTestCase { private static final String EDITOR_ID = "org.eclipse.newEditor1.newEditor1"; /** * @param testName */ public EditorTests(String testName) { super(testName); } /* (non-Javadoc) * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId() */ protected String getExtensionId() { return "newEditor1.testDynamicEditorAddition"; } /* (non-Javadoc) * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint() */ protected String getExtensionPoint() { return IWorkbenchRegistryConstants.PL_EDITOR; } /* (non-Javadoc) * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation() */ protected String getInstallLocation() { return "data/org.eclipse.newEditor1"; } // public void testEditorClosure() throws CoreException { // IWorkbenchWindow window = openTestWindow(IDE.RESOURCE_PERSPECTIVE_ID); // IFile file = getFile(); // getBundle(); // // ReferenceQueue queue = new ReferenceQueue(); // IEditorPart part = IDE.openEditor(window.getActivePage(), file, EDITOR_ID); // WeakReference ref = new WeakReference(part, queue); // assertNotNull(part); // part = null; //null the reference // // removeBundle(); // try { // LeakTests.checkRef(queue, ref); // } catch (Exception e) { // fail(e.getMessage()); // } // // assertEquals(0, window.getActivePage().getEditors().length); // } // public void testEditorProperties() throws Exception { // IEditorRegistry registry = WorkbenchPlugin.getDefault().getEditorRegistry(); // // assertNull(registry.findEditor(EDITOR_ID)); // getBundle(); // // IFile file = getFile("test.xml"); // IContentType contentType = IDE.getContentType(file); // IEditorDescriptor desc = registry.findEditor(EDITOR_ID); // assertNotNull(desc); // // testEditorProperties(desc); // // IEditorDescriptor descriptor = registry.getDefaultEditor(file.getName(), contentType); // // should not get our editor since it is not the default // assertFalse(desc.equals(descriptor)); // // removeBundle(); // assertNull(registry.findEditor(EDITOR_ID)); // try { // testEditorProperties(desc); // fail(); // } // catch (RuntimeException e) { // } // } /** * @param desc */ private void testEditorProperties(IEditorDescriptor desc) { assertNotNull(desc.getId()); assertNotNull(desc.getLabel()); assertNotNull(desc.getImageDescriptor()); } private IFile getFile() throws CoreException { return getFile("someFile"); } /** * */ private IFile getFile(String fileName) throws CoreException { IWorkspace workspace = ResourcesPlugin.getWorkspace(); IProject testProject = workspace.getRoot().getProject(getName()); testProject.create(null); testProject.open(null); IFile iFile = testProject.getFile(fileName); iFile.create(new ByteArrayInputStream(new byte[] { '\n' }), true, null); return iFile; } protected String getMarkerClass() { return "org.eclipse.ui.dynamic.DynamicEditor"; } }